package com.yunke.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.*;
import java.math.BigDecimal;

/**
 * 创建充值订单DTO
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@Schema(description = "创建充值订单请求")
public class YunkeCreateRechargeDto {

    /**
     * 充值金额
     */
    @NotNull(message = "充值金额不能为空")
    @DecimalMin(value = "0.01", message = "充值金额必须大于0.01元")
    @DecimalMax(value = "50000.00", message = "单次充值金额不能超过50000元")
    @Schema(description = "充值金额", example = "100.00")
    private BigDecimal amount;

    /**
     * 支付方式：1-微信支付 2-支付宝 3-余额支付
     */
    @NotNull(message = "支付方式不能为空")
    @Min(value = 1, message = "支付方式值无效")
    @Max(value = 3, message = "支付方式值无效")
    @Schema(description = "支付方式：1-微信支付 2-支付宝 3-余额支付", example = "1")
    private Integer payType;

    /**
     * 客户端IP
     */
    @Schema(description = "客户端IP", example = "192.168.1.1")
    private String clientIp;
} 